// 简单动画函数封装obj目标对象targer目标位置
// 给不同的元素指定了不同的定时器
function animate(obj, target, callback) {
  // console.log(callback);callback = function (){} 调用的时候callback()

  // 绑定事件后，不停的触发事件，元素的速度会越来越快，因为开启了太多的定时器
  // 解决方案，给元素值给一个定时器(每次事件触发之前清除定时器)
  clearInterval(obj.timer)
  obj.timer = setInterval(function () {
    // 步长值写在定时器中
    // 把步长值改为整数，否则最终不会准确停在设定好的位置
    // var step = Math.ceil((target - obj.offsetLeft) / 10)
    var step = (target - obj.offsetLeft) / 10
    step = step > 0 ? Math.ceil(step) : Math.floor(step)
    if (obj.offsetLeft == target) {
      // 停止动画 本质是停止定时器
      clearInterval(obj.timer)
      // 回调函数写在定时器里面
      // if (callback) {
      //   callback()
      // }
      callback && callback()
    }
    // 把每次加一的步长值改为一个慢慢变小的值 步长公式：(目标值 - 现在的位置)/10
    obj.style.left = obj.offsetLeft + step + 'px'
  }, 15)
}
